﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DLTN.Data;
using DLTN.Entities;

public partial class Tim_Kiem_Van_Chuyen : System.Web.UI.Page
{
    string strPreviousRowID = string.Empty; // Sử dụng để theo dõi Row của Group 
    int intSubTotalIndex = 1; // Sử dung để lưu add Index cho Group



    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            this.Pager1.CurrentIndex = 1;
            DisplayTransport(this.Pager1.CurrentIndex);
        }
    }

    protected void DisplayTransport(int PageNo)
    {
        string whereClause = "1=1";
        int TotalRows = 0;
        TList<VanChuyen> TListTransport = DataRepository.VanChuyenProvider.GetPaged(whereClause, "", PageNo - 1, Pager1.PageSize, out TotalRows);

        if (TListTransport.Count > 0)
        {

            GrdTransport.DataSource = TListTransport;
            GrdTransport.DataBind();
            GrdTransport.Visible = true;
            ltrMessage.Visible = false;

            // Thay doi mau row
            for (int i = 0; i < GrdTransport.Rows.Count; i++)
            {
                if (i % 2 == 0) GrdTransport.Rows[i].BackColor = Color.FromArgb(0xFF, 0xFF, 0xEE);
            }

            //Hien thi phan trang
            Pager1.ItemCount = TotalRows;
            if (TotalRows <= Pager1.PageSize) Pager1.Visible = false;
            else Pager1.Visible = true;

        }
        else
        {
            ltrMessage.Text = "Thông tin đang cập nhật";
            ltrMessage.Visible = true;
            GrdTransport.Visible = false;
        }

    }
    protected void Pager1_Command(object sender, CommandEventArgs e)
    {
        int currnetPageIndex = Convert.ToInt32(e.CommandArgument);
        Pager1.CurrentIndex = currnetPageIndex;
        DisplayTransport(currnetPageIndex);
    }

    protected void GrdTransport_RowCreated(object sender, GridViewRowEventArgs e)
    {
        bool IsSubTotalRowNeedToAdd = false;
        if ((strPreviousRowID != string.Empty) && (DataBinder.Eval(e.Row.DataItem, "SoCho") != null))
            if (strPreviousRowID != DataBinder.Eval(e.Row.DataItem, "SoCho").ToString())
                IsSubTotalRowNeedToAdd = true;
        if ((strPreviousRowID != string.Empty) && (DataBinder.Eval(e.Row.DataItem, "SoCho") == null))
        {
            IsSubTotalRowNeedToAdd = true;
            intSubTotalIndex = 0;
        }

        #region Thêm group đầu tiên
        if ((strPreviousRowID == string.Empty) && (DataBinder.Eval(e.Row.DataItem, "SoCho") != null))
        {
            // Thêm dòng trống
            //GridView grdViewOrders = (GridView)sender;
            //GridViewRow row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
            //TableCell cell = new TableCell();
            //cell.Text = "LOẠI : " + DataBinder.Eval(e.Row.DataItem, "SoCho").ToString() + " CHỖ";
            //cell.ColumnSpan = 6;
            //cell.CssClass = "GroupHeaderStyle";
            //cell.Width = 50;
            //row.Cells.Add(cell);
            //grdViewOrders.Controls[0].Controls.AddAt(e.Row.RowIndex + intSubTotalIndex, row);
            //intSubTotalIndex++;

            // Thêm group
            GridView grdViewOrders = (GridView)sender;
            GridViewRow row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
            TableCell cell = new TableCell();
            cell.Text = "LOẠI : " + DataBinder.Eval(e.Row.DataItem, "SoCho").ToString() + " CHỖ";
            cell.ColumnSpan = 6;
            cell.CssClass = "GroupHeaderStyle";
            cell.Width = 50;
            row.Cells.Add(cell);
            grdViewOrders.Controls[0].Controls.AddAt(e.Row.RowIndex + intSubTotalIndex, row);
            intSubTotalIndex++;

            if (DataBinder.Eval(e.Row.DataItem, "SoCho") != null)
            {
                // Thêm Title cho từng nhóm 
                row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
                cell = new TableCell();
                cell.Text = "Hình ảnh ";
                cell.CssClass = "GroupTitleStyle";
                row.Cells.Add(cell);

                cell = new TableCell();
                cell.Text = "Tên xe";
                cell.CssClass = "GroupTitleStyle";
                row.Cells.Add(cell);

                row.Cells.Add(cell);
                cell = new TableCell();
                cell.Text = "Nhà Sản Xuất";
                cell.CssClass = "GroupTitleStyle";
                row.Cells.Add(cell);
                cell.ColumnSpan = 6;

                grdViewOrders.Controls[0].Controls.AddAt(e.Row.RowIndex + intSubTotalIndex, row);
                intSubTotalIndex++;
            }
        }
        #endregion

        //Kiểm các mẫu tin để group
        if (IsSubTotalRowNeedToAdd)
        {
            #region Thêm một dòng tiêu đề của group
            GridView grdViewOrders = (GridView)sender;
            // Tạo ra một dòng          
            GridViewRow row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
            //Tạo ra một Cell          
            TableCell cell = new TableCell();

            //Thêm dòng tại RowIndex trên grid
            grdViewOrders.Controls[0].Controls.AddAt(e.Row.RowIndex + intSubTotalIndex, row);
            intSubTotalIndex++;
            #endregion
            #region Thêm header của group tiếp theo
            if (DataBinder.Eval(e.Row.DataItem, "SoCho") != null)
            {
                //// Thêm dòng trống ngăn cách 
                //row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
                //cell = new TableCell();
                //cell.Text = "LOẠI : " + DataBinder.Eval(e.Row.DataItem, "SoCho").ToString() + " CHỖ";
                //cell.ColumnSpan = 6;
                ////cell.CssClass = "GroupHeaderStyle";
                //row.Cells.Add(cell);
                //grdViewOrders.Controls[0].Controls.AddAt(e.Row.RowIndex + intSubTotalIndex, row);
                //intSubTotalIndex++;

                // Thêm dòng group
                row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
                cell = new TableCell();
                cell.Text = "LOẠI : " + DataBinder.Eval(e.Row.DataItem, "SoCho").ToString() + " CHỖ";
                cell.ColumnSpan = 6;
                cell.CssClass = "GroupHeaderStyle";
                row.Cells.Add(cell);
                grdViewOrders.Controls[0].Controls.AddAt(e.Row.RowIndex + intSubTotalIndex, row);
                intSubTotalIndex++;

                // Thêm Title cho từng nhóm 
                row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Insert);
                cell = new TableCell();
                cell.Text = "Hình ảnh ";
                cell.CssClass = "GroupTitleStyle";
                row.Cells.Add(cell);
                cell = new TableCell();
                cell.Text = "Tên xe";
                cell.CssClass = "GroupTitleStyle";
                row.Cells.Add(cell);

                row.Cells.Add(cell);
                cell = new TableCell();
                cell.Text = "Nhà Sản Xuất";
                cell.CssClass = "GroupTitleStyle";
                row.Cells.Add(cell);
                cell.ColumnSpan = 6;
                grdViewOrders.Controls[0].Controls.AddAt(e.Row.RowIndex + intSubTotalIndex, row);
                intSubTotalIndex++;
            }
            #endregion
        }

    }
    protected void GrdTransport_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            strPreviousRowID = DataBinder.Eval(e.Row.DataItem, "SoCho").ToString();
        }
    }
    protected void GrdTransport_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "cmdDatXe")
        {
            string strId = e.CommandArgument.ToString();
            Response.Redirect("~/" + strId + "_Van-Chuyen.aspx");
        }
    }
}